package com.sprouting.ops.annotations.service;


import com.sprouting.ops.annotations.invoke.CheckNotNull;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * CheckNotNull 注解的验证实现
 *
 * @author ：LX（长沙麓谷）
 * @date 创建时间： 2023/3/10 18:04
 */
public class CheckNotNullValidator implements ConstraintValidator<CheckNotNull, String> {

    /**
     * 初始化方法
     * @param constraintAnnotation
     */
    @Override
    public void initialize(CheckNotNull constraintAnnotation) {

    }

    /**
     * 校验方法
     * @param value 需要验证的值
     * @param context 校验的上下文
     * @return true 校验成功， false 不合法
     */
    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
        if (value == null){
            return false;
        }
        value = value.trim();

        // 一些前端可能传入的参数
        String undefined = "undefined";
        String nullValue = "null";
        String nullString = "";

        if (nullString.equals(value) || undefined.equals(value) || nullValue.equals(value)) {
            return false;
        }
        return true;
    }
}
